package Guis;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;

import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import Guis.Listener.Listener;
import controllers.IController;
import controllers.InicioController;

public class Inicio extends JFrame  {

    private static final long serialVersionUID = 1L;
    private JPanel PanelPrincipal;
    private JPasswordField textFContraseñaUsuario;
    private JTextField textFNombreUsuario;

    /**
     * Create the frame.
     */
    public Inicio() {
	// caracteristicas panel principal
	super("Ingreso");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(50, 100, 560, 205);
	PanelPrincipal = new JPanel();
	PanelPrincipal.setCursor(Cursor
		.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
	PanelPrincipal.setBorder(new EmptyBorder(5, 5, 5, 5));
	PanelPrincipal.setLayout(new BorderLayout());
	setContentPane(PanelPrincipal);

	// boton salida
	ImageIcon salidaIcon = new ImageIcon("src/Imagenes/exit.png");
	JButton salir = new JButton(salidaIcon);
	salir.setBounds(5, 5, 815, 10);
	salir.setAlignmentX(Component.RIGHT_ALIGNMENT);
	salir.setIcon(salidaIcon);
	salir.setToolTipText("salir del programa");
	Listener manejadorSalida= new Listener();
	IController controladorSalida = new InicioController();
	controladorSalida.setView(this);
	manejadorSalida.associate(salir, controladorSalida);
	
	
	// botonm ingresar
	JButton ok = new JButton("Ingresar");
	ok.setFont(new Font("Dialog", Font.BOLD, 20));
	ok.setToolTipText("ingresar al programa");
	
	Listener manejadorOk = new Listener();
	IController controladorOk = new InicioController();
	controladorOk.setView(this);
	manejadorOk.associate(ok, controladorOk);
	
	// panel botones
	JPanel botones = new JPanel();
	botones.setBounds(0, 0, 0, 0);
	botones.setLayout(new FlowLayout());
	botones.add(ok);
	botones.add(salir);

	// panel contraseña
	JPanel panelContraseña = new JPanel();
	panelContraseña.setBounds(0, 0, 0, 0);
	panelContraseña.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));

	JLabel lblContrasea = new JLabel("CONTRASEÑA:");
	lblContrasea.setFont(new Font("Dialog", Font.BOLD, 28));
	panelContraseña.add(lblContrasea);

	textFContraseñaUsuario = new JPasswordField();
	textFContraseñaUsuario.setFont(new Font("Dialog", Font.PLAIN, 22));
	textFContraseñaUsuario.setColumns(10);
	panelContraseña.add(textFContraseñaUsuario);

	// panel de usuario
	JPanel panelUsuario = new JPanel();
	panelUsuario.setBounds(5, 15, 815, 424);
	panelUsuario.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));

	JLabel nombreUsuario = new JLabel("USUARIO:");
	nombreUsuario.setFont(new Font("Dialog", Font.BOLD, 28));
	panelUsuario.add(nombreUsuario);

	textFNombreUsuario = new JTextField();
	textFNombreUsuario.setAlignmentX(Component.RIGHT_ALIGNMENT);
	textFNombreUsuario.setFont(new Font("Dialog", Font.PLAIN, 22));
	textFNombreUsuario.setColumns(10);
	panelUsuario.add(Box.createRigidArea(new Dimension(66, 0)));
	panelUsuario.add(textFNombreUsuario);

	// acomodo los paneles en la ventana principal
	PanelPrincipal.add(panelContraseña, BorderLayout.LINE_START);
	PanelPrincipal.add(panelUsuario, BorderLayout.BEFORE_FIRST_LINE);
	PanelPrincipal.add(botones, BorderLayout.PAGE_END);
	this.setVisible(true);
    }

    public String getUsuario() {
	return textFNombreUsuario.getText().trim();
    }

    public String getPassword() {
	return new String(textFContraseñaUsuario.getPassword());
    }

    public void close() {
	this.dispose();
    }

}
